package Administrador.Interfaz;

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * 
 * @author joanna
 */
public class VentanaTienda extends Ventana implements ActionListener{

    public JFrame ventanaTienda;
    public CardLayout cardLayout;
    JPanel panelDinamico;
    PanelCentral panelCentral;
    public JLabel sucursal,terminal;
    public BotonTransparente btPrincipal;
    public JButton nvSucursal,ctSucursal,mdSucursal,elmSucursal,
                   nvTerminal,ctTerminal;
    
    public VentanaTienda()
    {
       ventanaTienda= new JFrame("SIVOUT-Sistema de Manejo de informacion de ventas para Outdoor-Shop");
       ventanaTienda.setSize(1050,620);
       ventanaTienda.setLocationRelativeTo(null);
       ventanaTienda.setLayout(null);
       ventanaTienda.setResizable(false);
       ventanaTienda.setVisible(true);
       ventanaTienda.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
       ventanaTienda.add(acomodarComponentes());
    }
    
    @Override
    protected JPanel acomodarComponentes() {
        
      cardLayout = new CardLayout();
      panelCentral = new PanelCentral();
      
      //Contiene todos los paneles de la ventana
      JPanel contenedor = new JPanel();
      contenedor.setSize(1050, 620);
      contenedor.setLayout(null);
      
      //Contiene Imagen de Fondo y transparencia de fondo. Crear para todos los Frames
      JPanel contenidoFondo= asignarPanelGeneral();
      contenidoFondo.setBounds(0, 0, 1050, 620);
      contenidoFondo.setLayout(null);
            
      
      inicializarBotonesYEtiquetasLaterales();
      //Contiene los botones laterales: nuevo,consultar,modificar,eliminar y etiquetas laterales.
      // Maximo 8 botones, maximo 2 labels. Crear para tienda,Personal,Clientes,Reportes
      JPanel panelLateral= panelCentral.obtenerPanelLateral(sucursal, terminal,btPrincipal,
              nvSucursal,ctSucursal,mdSucursal,elmSucursal,nvTerminal,ctTerminal,null,null);
      
      //Fondo para el Panel derecho y el titulo de la barra gris.
      JPanel panelPrincipal= panelCentral.obtenerPanelPrincipal("ADMINISTRAR INFORMACION DE SUCURSAL");
      
      //Contiene todos los paneles que se mostraran segun el boton clickeado.
      JPanel panelD=acomodarPaneles();
      
      //Se adicionan los paneles al contenedor
      contenedor.add(panelD);
      contenedor.add(panelPrincipal);
      contenedor.add(panelLateral);
      contenedor.add(contenidoFondo);     
      return contenedor;
      
    }
    
    public void inicializarBotonesYEtiquetasLaterales()
    {
        btPrincipal= new BotonTransparente(Color.BLACK);
        btPrincipal.setText("Principal");
        btPrincipal.addActionListener(this);
        
        sucursal = new JLabel("Sucursal");
        terminal = new JLabel("Terminal");
        
        
        nvSucursal = new BotonTransparente(Color.BLACK);
        nvSucursal.setText("Nuevo");
        nvSucursal.addActionListener(this);
        
        ctSucursal = new BotonTransparente(Color.BLACK);
        ctSucursal.setText("Consultar");
        ctSucursal.addActionListener(this);
        
        mdSucursal = new BotonTransparente(Color.BLACK);
        mdSucursal.setText("Modificar");
        mdSucursal.addActionListener(this);
        
        elmSucursal= new BotonTransparente(Color.BLACK);
        elmSucursal.setText("Eliminar");
        elmSucursal.addActionListener(this);
        
        nvTerminal = new BotonTransparente(Color.BLACK);
        nvTerminal.setText("Nuevo");
        nvTerminal.addActionListener(this);
        
        ctTerminal = new BotonTransparente(Color.BLACK);
        ctTerminal.setText("Consultar");
        ctTerminal.addActionListener(this);
        
        
    }
    
    public JPanel acomodarPaneles()
    {
     
      InterfazSucursal objSucursal = new InterfazSucursal();
      InterfazTerminal objTerminal = new InterfazTerminal();
      JPanel panelInicial = new JPanel();
      panelInicial.setOpaque(false);
 
      //Contienen los paneles que se mostraran segun el boton clickeado.
      panelDinamico = new JPanel();
      panelDinamico.setLayout(cardLayout);
      panelDinamico.setOpaque(false);
      panelDinamico.setVisible(true);
      
      // se ingresa el objeto panel y se le asigna un nombre.
      panelDinamico.add(panelInicial,"panel0");
      panelDinamico.add(objSucursal.registrarSucursal(), "panelA");
      panelDinamico.add(objSucursal.consultarSucursal(), "panelB");
      panelDinamico.add(objSucursal.modificarSucursal(), "panelC");
      panelDinamico.add(objSucursal.eliminarSucursal(), "panelD");
      panelDinamico.add(objTerminal.registrarTerminal(),"panelE");
      panelDinamico.add(objTerminal.consultarTerminal(),"panelF");
           
      panelDinamico.setBounds(184,70, 870, 490);
           
      return panelDinamico;
        
    }
    
    @Override
    public void actionPerformed(ActionEvent evento) {
        
        if(evento.getSource()== btPrincipal)
        {
            new VentanaPrincipal();
            ventanaTienda.dispose();
        }
        if(evento.getSource()== nvSucursal)
        {
            //para mostrar el panel que corresponde a ese boton
            //cardLayout.show(panelDinamico, nombre dado al panel en el metodo acomodar componentes)
            cardLayout.show(panelDinamico, "panelA");
        }
        else
        {
            if(evento.getSource()== ctSucursal)
            { 
                cardLayout.show(panelDinamico, "panelB");
            }
            else
            {
                if(evento.getSource()== mdSucursal)
                { 
                    cardLayout.show(panelDinamico, "panelC");
                }
                else
                {
                    if(evento.getSource()== elmSucursal)
                    { 
                        cardLayout.show(panelDinamico, "panelD");
                    }
                }
            }
        }
        if(evento.getSource()== nvTerminal)
        {
            cardLayout.show(panelDinamico, "panelE");
        }
        else
        {
            if(evento.getSource()== ctTerminal)
            { 
                cardLayout.show(panelDinamico, "panelF");
            }
            
        }
        
        
    }
    
    
}
    

